package com.example.designpattern.structural.proxy.static_proxy;

import org.junit.Test;

public class Client {
    @Test
    public void test() {
        Person person = new Person();
        person.eat();
        person.sleep();
    }

    /**
     * 我们可以把Person这个类包装到另一个类中，实现完全一样的行为：
     */
    @Test
    public void test1() {
        Person person = new Person();
        PersonProxy proxy = new PersonProxy(person);
        proxy.eat();
        proxy.sleep();

        // 我们在客户端和 Person 类之间新增了一个中间件 PersonProxy，这个类就叫做代理类，他实现了和 Person 类一模一样的行为。

        // 代理模式：给某一个对象提供一个代理，并由代理对象控制对原对象的引用。
    }
}


